﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DTO_MechSys;
using BLL_MechSys;

namespace FORMS_MechSys
{
    public partial class frmEstoqueEditarProduto : Form
    {
        DTOProduto dtoProduto = new DTOProduto();
        BLLProduto bllProduto = new BLLProduto();
        BLLCategoria bllCategoria = new BLLCategoria();
        BLLFornecedor bllFornecedor = new BLLFornecedor();
        DTOProduto dtoProdutoADD = new DTOProduto();

        DTOCor dtoCorFundo = new DTOCor();
        DTOCor dtoCorPrincipal = new DTOCor();
        DTOCor dtoCorLetras= new DTOCor();
        DTOCor dtoCorGrid= new DTOCor();
        BLLCor bllCor = new BLLCor();
        
        
        int FornecedorID, CategoriaID;

        public frmEstoqueEditarProduto(int ProdutoID)
        {
            InitializeComponent();
            LoadProduto(ProdutoID);
            SetColors();
        }

        private void SetColors()
        {
            dtoCorFundo = bllCor.Buscar("Fundo");
            dtoCorGrid = bllCor.Buscar("DataGrid");
            dtoCorLetras = bllCor.Buscar("Letra");
            dtoCorPrincipal = bllCor.Buscar("Principal");
            this.BackColor = tlpPrincipal.BackColor = dtoCorFundo.Cor;
            tlpCrud.BackColor = tlp_dados.BackColor = btnBuscarCategoria.BackColor = btnBuscarFornecedor.BackColor =
                btnSalvar.BackColor = toolStrip1.BackColor = dtoCorPrincipal.Cor;
            lbl1.ForeColor = lbl10.ForeColor = lbl2.ForeColor = lbl3.ForeColor = lbl4.ForeColor = lbl5.ForeColor =
                lbl6.ForeColor = lbl7.ForeColor = lbl8.ForeColor = lbl9.ForeColor = btnBuscarCategoria.ForeColor =
                btnBuscarFornecedor.ForeColor = btnSalvar.ForeColor = dtoCorLetras.Cor;

 
        }

        private void LoadProduto(int ProdutoID)
        {
            dtoProduto = bllProduto.PesquisarProdutos("", ProdutoID)[0];
            txtCategoria.Text = bllCategoria.BuscarDescicaoPorCategoriaID(dtoProduto.CategoriaID).Descricao;
            txtCodigo.Text = dtoProduto.ProdutoID.ToString();
            txtDescricao.Text = dtoProduto.Descricao;
            txtEstoqueMinimo.Text = dtoProduto.EstoqueMinimo.ToString();
            CategoriaID = dtoProduto.CategoriaID;
            FornecedorID = dtoProduto.FornecedorID;
            txtFornecedor.Text = bllFornecedor.BuscarRazaoPorFornecedorID(dtoProduto.FornecedorID).Razao;
            txtQuantidade.Text = dtoProduto.Quantidade.ToString();
            txtValorCompra.Text = string.Format("{0:0.00}", dtoProduto.ValorCompra);
            txtValorVenda.Text = string.Format("{0:0.00}", dtoProduto.Valor);
        }

        private void btnSalvar_Click(object sender, EventArgs e)
        {
            dtoProdutoADD.ProdutoID = Int32.Parse(txtCodigo.Text);
            dtoProdutoADD = bllProduto.PesquisarProdutos("", dtoProdutoADD.ProdutoID)[0];
            txtCodigo.Text = dtoProdutoADD.ProdutoID.ToString();
            txtDescricao.Text = txtDescricao.Text;
            dtoProdutoADD.CategoriaID = this.CategoriaID;
            dtoProdutoADD.FornecedorID = this.FornecedorID;
            dtoProdutoADD.Valor = float.Parse( txtValorVenda.Text);
            dtoProdutoADD.ValorCompra = float.Parse( txtValorCompra.Text );
            dtoProdutoADD.EstoqueMinimo = Int32.Parse( txtEstoqueMinimo.Text );
            dtoProdutoADD.Quantidade = Int32.Parse( txtQuantidade.Text);
            if (rbtnEmLinha.Checked)
                dtoProdutoADD.Descontinuado = true;
            else
                dtoProdutoADD.Descontinuado = false;



            dtoProdutoADD.Descricao = txtDescricao.Text;
            if (!string.IsNullOrWhiteSpace(txtEstoqueMinimo.Text))
                dtoProdutoADD.EstoqueMinimo = Int32.Parse(txtEstoqueMinimo.Text);
            if (!string.IsNullOrWhiteSpace(txtValorCompra.Text))
                dtoProdutoADD.ValorCompra = float.Parse(txtValorCompra.Text);
            if (!string.IsNullOrWhiteSpace(txtValorVenda.Text))
                dtoProdutoADD.Valor = float.Parse(txtValorVenda.Text);
            if (!string.IsNullOrWhiteSpace(txtQuantidade.Text))
                dtoProdutoADD.Quantidade = Int32.Parse(txtQuantidade.Text);

            if (rbtnEmLinha.Checked)
                dtoProdutoADD.Descontinuado = true;
            else
                dtoProdutoADD.Descontinuado = false;
            if (dtoProdutoADD.ProdutoID == 0)
                bllProduto.Inserir(dtoProdutoADD);
            else
                bllProduto.Atualizar(dtoProdutoADD);

            new frmMessageBox().Show("Produto Editado com Sucesso!", "Produto Editado", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            this.Close();

        }

        private void toolStripButtonSair_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnBuscarCategoria_Click(object sender, EventArgs e)
        {

            new frmSelecionarGenerico("Categoria").ShowDialog();

            if (!string.IsNullOrEmpty(BLLUtilitarios.categoriaDescricao))
            {
                txtCategoria.Text = BLLUtilitarios.categoriaDescricao;
                dtoProdutoADD.CategoriaID = BLLUtilitarios.categoriaID;
            }
            BLLUtilitarios.categoriaID = 0;
            BLLUtilitarios.categoriaDescricao = null;
        }

        private void btnBuscarFornecedor_Click(object sender, EventArgs e)
        {
            new frmSelecionarGenerico("Fornecedor").ShowDialog();

            if (!string.IsNullOrEmpty(BLLUtilitarios.fornecedorNome))
            {
                txtFornecedor.Text = BLLUtilitarios.fornecedorNome;
                dtoProdutoADD.FornecedorID = BLLUtilitarios.fornecedorID;
            }
            BLLUtilitarios.fornecedorID = 0;
            BLLUtilitarios.fornecedorNome = null;
        }


    }
}
